//
//  FileListViewController.m
//  JXW_UnionSDK
//
//  Created by 彭月辉 on 2022/6/24.
//

#import "FileListViewController.h"
#import "PlaybackViewController.h"
#import <SDWebImage/UIImageView+WebCache.h>

#import "SVProgressHUD.h"
#import <AFNetworking/AFNetworking.h>

#import <ADSEFramework/ADSELinkManager.h>



@interface FileListViewController (){
    NSMutableArray *mutableFileList;
    NSTimer *copyTimer;
}

@end

@implementation FileListViewController

//- (void)viewDidLoad {
//    [super viewDidLoad];
//    self.title = @"文件列表";
//    self.tableView.tableFooterView = [UIView new];
//    
//    mutableFileList = [NSMutableArray arrayWithArray:self.filelist];
//    
//
//
//}
//
//- (void)viewWillDisappear:(BOOL)animated{
//    [super viewWillAppear:animated];
//}
//
//- (void)copyFile:(UITapGestureRecognizer *)sender{
//    [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeBlack];
//    [SVProgressHUD show];
//
//    ADSEFileItem *item = mutableFileList[sender.view.tag];
//    
//    __block BOOL flag;
//    [[ADSELinkManager shareInstance] isMultipleStorageSupported:^(NSInteger code, BOOL isSupport) {
//        if(code == LINK_ERR_OK){
//            flag = isSupport;
//        }
//        else{
//            flag = NO;
//        }
//    }];
//    if(!flag){
//        [SVProgressHUD dismiss];
//        [self showError:@"不支持拷贝文件"];
//        return;
//    }
//    //先查询TF卡是否正常
//    [[ADSELinkManager shareInstance] getExternalStorageState:^(NSInteger code, LinkStorageState state) {
//        NSLog(@"拷贝文件");
//
//        if(code == LINK_ERR_OK){
//            if(state == LINK_CARD_OK){
//                //开始拷贝文件
//                [[ADSELinkManager shareInstance] copyFileToTFCard:item.optionURL callback:^(NSInteger code) {
//                    if(code == LINK_ERR_OK){
//                        __block NSInteger preValue = 0;
//                        copyTimer = [NSTimer scheduledTimerWithTimeInterval:1
//                                                                             repeats:YES
//                                                                               block:^(NSTimer * _Nonnull timer) {
//                            [[ADSELinkManager shareInstance] getFileCopyProgress:^(NSInteger code, NSInteger progress) {
//                                if(code == LINK_ERR_OK){
//                                    NSLog(@"copy file --> %ld%%",progress);
//
//                                    if(preValue == progress){
//                                        [SVProgressHUD dismiss];
//                                        [timer invalidate];
//                                    }
//                                    else{
//                                        preValue = progress;
//
//                                        [SVProgressHUD showProgress:progress/100.0 status:@"文件拷贝"];
//                                        if(progress == 100){
//                                            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//                                                [SVProgressHUD dismiss];
//                                            });
//                                            [timer invalidate];
//                                        }
//                                    }
//
//                                }
//                                else{
//                                    [SVProgressHUD dismiss];
//                                    [self showError:@"拷贝文件出错"];
//                                    [timer invalidate];
//                                }
//                            }];
//                        }];
//                    }
//                    else{
//                        [SVProgressHUD dismiss];
//                        [self showError:@"拷贝文件出错"];
//                    }
//                }];
//            }
//            else{
//                [SVProgressHUD dismiss];
//                [self showError:[self convertCardStatusToString:state]];
//            }
//        }
//        else{
//            [SVProgressHUD dismiss];
//            [self showError:@"请求失败"];
//        }
//    }];
//}
//
//- (void)downloadFile:(UILongPressGestureRecognizer *)sender{
//    
//    if (sender.state == UIGestureRecognizerStateBegan) {
//        ADSEFileItem *item = mutableFileList[sender.view.tag];
//        NSLog(@"file name --> %@",item.name);
//        
//        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"下载文件"
//                                                                                 message:item.name
//                                                                          preferredStyle:UIAlertControllerStyleAlert];
//        
//        UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"下载" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
//
//            [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeBlack];
//            /* 创建网络下载对象 */
//            AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
//            
//            /* 下载地址 */
//            NSURL *url = [NSURL URLWithString:item.downloadURL];
//            NSURLRequest *request = [NSURLRequest requestWithURL:url];
//            
//            /* 下载路径 */
//            NSString *main = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).firstObject;
//            NSString *path;
//            if([item.type integerValue] == LINK_DIR_PHOTO){
//                path = [main stringByAppendingPathComponent:@"photo"];
//            }
//            else if([item.type integerValue] == LINK_DIR_VIDEO){
//                path = [main stringByAppendingPathComponent:@"video"];
//            }
//            else if([item.type integerValue] == LINK_DIR_EVENT){
//                path = [main stringByAppendingPathComponent:@"video_emergency"];
//            }
//
//            if(![[NSFileManager defaultManager] fileExistsAtPath:path]){
//                [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
//            }
//            NSString *filePath = [path stringByAppendingPathComponent:item.name];
//            
//            /* 开始请求下载 */
//            NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
//                dispatch_async(dispatch_get_main_queue(), ^{
//                    NSLog(@"下载进度：%.0f％", downloadProgress.fractionCompleted * 100);
//                    [SVProgressHUD showProgress:downloadProgress.fractionCompleted status:item.name];
//                });
//            } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
//                dispatch_async(dispatch_get_main_queue(), ^{
//                    //如果需要进行UI操作，需要获取主线程进行操作
//                });
//                return [NSURL fileURLWithPath:filePath];
//                        
//            } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
//                 NSLog(@"下载完成");
//                dispatch_async(dispatch_get_main_queue(), ^{
//                    [SVProgressHUD dismiss];
//                });
//            }];
//             
//            [downloadTask resume];
//            
//        }];
//        
//        UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
//
//        }];
//        
//        [alertController addAction:okAction];
//        [alertController addAction:cancelAction];
//        
//        [self presentViewController:alertController animated:YES completion:nil];
//
//    }
//
//}
//
//
//- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
//    return 1;
//}
//
//- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
//    return [mutableFileList count];
//}
//
//
//- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//    
//    ADSEFileItem *item = mutableFileList[indexPath.row];
//
//    static NSString *cellIdentifier = @"CellIdentifer";
//    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
//    if(!cell){
//        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
//        cell.selectionStyle = UITableViewCellSelectionStyleNone;
//        cell.textLabel.textColor = [UIColor blackColor];
//        
//        UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"FileCopy"]];
//
//        imageView.userInteractionEnabled = YES;
//        imageView.tag = indexPath.row;
//    
//        if(self.type == LINK_STORAGE_INTERNAL){
//            cell.accessoryView = imageView;
//        }
//        else{
//            cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
//        }
//        
//        UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(copyFile:)];
//        tapGR.numberOfTapsRequired = 1;
//        [imageView addGestureRecognizer:tapGR];
//
//        
//        UILongPressGestureRecognizer *longPressGR = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(downloadFile:)];
//        longPressGR.minimumPressDuration = 0.7;
//        [cell addGestureRecognizer:longPressGR];
//        
//    }
//    cell.tag = indexPath.row;
//    cell.textLabel.text = item.name;
//    [cell.imageView sd_setImageWithURL:[NSURL URLWithString:item.thumbURL] placeholderImage:[UIImage imageNamed:@"DefaultImage"]];
//    
//    return cell;
//}
//
//- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//    [tableView deselectRowAtIndexPath:indexPath animated:YES];
//    
//    ADSEFileItem *item = mutableFileList[indexPath.row];
//    PlaybackViewController *vc = [[PlaybackViewController alloc] init];
//    vc.item = item;
//    [self.navigationController pushViewController:vc animated:YES];
//
//}
//
////点击拷贝文件至TF卡
//- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
//{
//    NSLog(@"accessoryButtonTappedForRowWithIndexPath");
//    
//    [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeBlack];
//    [SVProgressHUD show];
//
//    ADSEFileItem *item = mutableFileList[indexPath.row];
//    
//    __block BOOL flag;
//    [[ADSELinkManager shareInstance] isMultipleStorageSupported:^(NSInteger code, BOOL isSupport) {
//        if(code == LINK_ERR_OK){
//            flag = isSupport;
//        }
//        else{
//            flag = NO;
//        }
//    }];
//    if(!flag){
//        [SVProgressHUD dismiss];
//        [self showError:@"不支持拷贝文件"];
//        return;
//    }
//    //先查询TF卡是否正常
//    [[ADSELinkManager shareInstance] getExternalStorageState:^(NSInteger code, LinkStorageState state) {
//        NSLog(@"拷贝文件");
//
//        if(code == LINK_ERR_OK){
//            if(state == LINK_CARD_OK){
//                //开始拷贝文件
//                [[ADSELinkManager shareInstance] copyFileToTFCard:item.optionURL callback:^(NSInteger code) {
//                    if(code == LINK_ERR_OK){
//                        __block NSInteger preValue = 0;
//                        copyTimer = [NSTimer scheduledTimerWithTimeInterval:1
//                                                                             repeats:YES
//                                                                               block:^(NSTimer * _Nonnull timer) {
//                            [[ADSELinkManager shareInstance] getFileCopyProgress:^(NSInteger code, NSInteger progress) {
//                                if(code == LINK_ERR_OK){
//                                    NSLog(@"copy file --> %ld%%",progress);
//
//                                    if(preValue == progress){
//                                        [SVProgressHUD dismiss];
//                                        [timer invalidate];
//                                    }
//                                    else{
//                                        preValue = progress;
//
//                                        [SVProgressHUD showProgress:progress/100.0 status:@"文件拷贝"];
//                                        if(progress == 100){
//                                            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//                                                [SVProgressHUD dismiss];
//                                            });
//                                            [timer invalidate];
//                                        }
//                                    }
//
//                                }
//                                else{
//                                    [SVProgressHUD dismiss];
//                                    [self showError:@"拷贝文件出错"];
//                                    [timer invalidate];
//                                }
//                            }];
//                        }];
//                    }
//                    else{
//                        [SVProgressHUD dismiss];
//                        [self showError:@"拷贝文件出错"];
//                    }
//                }];
//            }
//            else{
//                [SVProgressHUD dismiss];
//                [self showError:[self convertCardStatusToString:state]];
//            }
//        }
//        else{
//            [SVProgressHUD dismiss];
//            [self showError:@"请求失败"];
//        }
//    }];
//}
//
//- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
//    return YES;
//}
//
//
//- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
//    return UITableViewCellEditingStyleDelete;
//}
//
////滑动cell删除文件
//-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
//{
//        if (editingStyle == UITableViewCellEditingStyleDelete)
//        {
//            // 删除数据
//            ADSEFileItem *item = mutableFileList[indexPath.row];
//            if([item.type integerValue] == LINK_DIR_EVENT){
//                [self showError:@"文件已加锁"];
//                return;
//            }
//            [[ADSELinkManager shareInstance] deleteFile:item.optionURL callback:^(NSInteger code) {
//                if(code == LINK_ERR_OK){
//                    [mutableFileList removeObjectAtIndex:indexPath.row];
//                    [tableView reloadData];
//                }
//                else{
//                    NSLog(@"删除文件失败 --> %ld",code);
//                }
//
//            }];
//
//        }
//}
//
//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
//    return 60;
//}
//
//- (void)showError:(NSString *)msg{
//    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示"
//                                                                   message:msg
//                                                            preferredStyle:UIAlertControllerStyleAlert];
//    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
//        
//    }];
//    
//    [alert addAction:okAction];
//    
//    [self presentViewController:alert animated:YES completion:nil];
//}
//
//- (NSString *)convertCardStatusToString:(LinkStorageState)state{
//    
//    NSString *errorString = @"无卡";
//    if(state == LINK_CARD_REMOVED){
//        errorString = @"卡已移除";
//    }
//    else if (state == LINK_CARD_FULL){
//        errorString = @"卡已满";
//    }
//    else if (state == LINK_CARD_READ_ONLY){
//        errorString = @"卡不能写入";
//    }
//    else if (state == LINK_CARD_LOCKED){
//        errorString = @"卡已锁定";
//    }
//    else if (state == LINK_CARD_UNFORMATTED){
//        errorString = @"卡未格式化";
//    }
//    else if (state == LINK_CARD_UNKNOWN_FORMAT){
//        errorString = @"未知格式的卡";
//    }
//    else if (state == LINK_CARD_BAD){
//        errorString = @"坏卡";
//    }
//    else if (state == LINK_CARD_ERROR){
//        errorString = @"卡错误";
//    }
//    return errorString;
//
//}
//
@end
